from pymongo import MongoClient, ASCENDING
import datetime
from dotenv import load_dotenv
import os

# 加载环境变量
load_dotenv()

# 连接到MongoDB
mongo_uri = os.getenv('MONGO_URI', 'mongodb://localhost:27017/medical_system')
client = MongoClient(mongo_uri)
db = client.medical_system

# 获取所有集合
collections = db.list_collection_names()
print(f"数据库中的所有集合: {collections}")

# 检查文件集合是否存在
if 'files' not in collections:
    # 创建文件集合
    db.create_collection('files')
    print("已成功创建files集合")
    
    # 创建索引
    db.files.create_index([('relatedId', ASCENDING)])
    db.files.create_index([('relatedType', ASCENDING)])
    db.files.create_index([('type', ASCENDING)])
    db.files.create_index([('uploadBy', ASCENDING)])
    db.files.create_index([('createdAt', ASCENDING)])
    print("已为files集合创建索引")
else:
    print("files集合已存在")
    
    # 检查索引是否存在
    indexes = db.files.index_information()
    print(f"files集合的索引: {list(indexes.keys())}")
    
    # 如果索引不存在，创建索引
    if 'relatedId_1' not in indexes:
        db.files.create_index([('relatedId', ASCENDING)])
        print("已创建relatedId索引")
    
    if 'relatedType_1' not in indexes:
        db.files.create_index([('relatedType', ASCENDING)])
        print("已创建relatedType索引")
    
    if 'type_1' not in indexes:
        db.files.create_index([('type', ASCENDING)])
        print("已创建type索引")
    
    if 'uploadBy_1' not in indexes:
        db.files.create_index([('uploadBy', ASCENDING)])
        print("已创建uploadBy索引")
    
    if 'createdAt_1' not in indexes:
        db.files.create_index([('createdAt', ASCENDING)])
        print("已创建createdAt索引")

# 打印集合信息
count = db.files.count_documents({})
print(f"\nfiles集合中有 {count} 条记录")

# 关闭连接
client.close()

print("\n提示: 文件管理功能已准备就绪，可以开始使用！") 